1. Technical Field
The present invention relates generally to an improved data processing system and in particular to an improved method and apparatus for managing a business system using classifications. Still more particularly, the present invention relates to an apparatus and method for specifying the dynamic content to be associated with a user of an application, based on characteristics of the user.
2. Description of Related Art
As businesses increasingly migrate to the Internet, the ability to provide users with an interactive experience that is interesting and easily interfaced with has become more important. Some business Web sites, for example, fail to even attract the casual visitor while others may attract the casual visitor but fail to retain them as the Web site may be too cumbersome for the casual visitor to use. These failures to attract and keep the casual visitor result in lost business opportunities.
One way in which businesses attempt to combat this problem is to make their Web sites and Internet applications more personalized to the particular user using information that is known or gathered and retained about the user and his encounter with the business application. The conventional way in which this personalization is performed is using a decision engine that takes user information and generates personalized content and/or function. The decision engine is frequently a rules engine that makes use of a plurality of nested if-then-do decision rules to determine what content/functions should be provided to the particular user.
When a personalization task is to be performed using this conventional decision engine, all of the rules in the decision engine must be executed. The ones whose if part evaluates to true, result in the do part being executed. Those that evaluate to false are ignored. The do part of the final rule in the chain frequently selects, orders or filters content, or performs some function, usually asynchronously, such as sending an acknowledgement electronic mail, or the like. In some implementations, the do parts may change the conditions tested in the if parts, causing the set of rules to be iteratively recalculated.
With the above approach, it is never very clear which of the actions are going to be taken at any given time, given a set of non-overlapping circumstances. While some of the ambiguity could be resolved by combining sets of conditions into compound if parts, this frequently yields an explosion in the number of rules. For example, Rule 1 specifies what to do when parts a, b, c are all true; Rule 2 specifies what to do when parts a and b are true, but part c is false; Rule 3 specifies what to do when part a and c are true, but part b is false, and so on.
Because it is not very clear which of the actions are going to be taken at any given time, if business conditions change and a change to the decision engine is required, it becomes very difficult to determine which decisions need to be changed. If further becomes difficult to determine how the change in one decision will affect other decisions in the decision engine. Thus, an analyst is required to trace all of the possible decisions to determine if the decision engine will work properly under all possible conditions.
Furthermore, with the conventional decision engine, all of the rules in a rule set are at least partially executed (their if parts), as described above, even when many of the conditions do not remotely apply. This results in a performance degradation because rules that will result in a false determination will be executed and computing cycles will be wasted.
Thus, it would be beneficial to have a method and apparatus for performing personalization based on classification in which changes in decision rules may be performed relatively effortlessly and in which only the decisions necessary for a particular classification are executed.